// app 模块是为了控制整个应用的生命周期设计的。
// BrowserWindow 类让你有创建一个浏览器窗口的权力。
const {app, BrowserWindow, Menu, ipcMain,dialog} = require('electron');
const nativeImage = require('electron').nativeImage;
var overlay = nativeImage.createFromPath('icon.png');

const mainWindowURL = 'http://10.86.88.25:7080/';

let mainWindow;

//api:https://wizardforcel.gitbooks.io/electron-doc/content/api/browser-window.html
function createWindow () {
    console.log("createWindow......"); 
      mainWindow = new BrowserWindow({
      // fullscreen: true,
      maximizable: true, //支持最大化
      show: false,   //为了让初始化窗口显示无闪烁，先关闭显示，等待加载完成后再显示。
      // icon: "https://medical.3vyd.com/alk/prod/pc/icon/icon.ico"
    })

    // Emitted when the window is closed.
    mainWindow.on('closed', function () {
      console.log("closed......"); 
      mainWindow = null;
    })
    // mainWindow.once('ready-to-show', () => {    //开启这个以后点击了图片虽然没有白屏，但是会感觉不到点了没点
    mainWindow.maximize();    //打开时最大化打开，不是全屏，保留状态栏
    // })

  // mainWindow.setOverlayIcon(overlay, "医敏")
  
  mainWindow.setAutoHideMenuBar(true);//自动隐藏菜单
  mainWindow.loadURL(mainWindowURL);
  mainWindow.setTitle("云存储");
  // app.commandLine.appendSwitch("--disable-http-cache")   禁用缓存
  // mainWindow.webContents.openDevTools({mode:'bottom'});
  mainWindow.show();
  const path = require('path')
  mainWindow.webContents.session.on('will-download', (e, item) => {	
    //获取文件的总大小   
    const totalBytes = item.getTotalBytes();		
    //设置文件的保存路径，此时默认弹出的 save dialog 将被覆盖   
    const filePath = path.join(app.getPath('desktop'), item.getFilename()); 
    console.log(filePath)   
    item.setSavePath(filePath);		
    //监听下载过程，计算并设置进度条进度   
    item.on('updated', () => {       
      mainWindow.setProgressBar(item.getReceivedBytes() / totalBytes);   
    });		
    //监听下载结束事件   
    item.on('done', (e, state) => {   		
      //如果窗口还在的话，去掉进度条       
      if (!mainWindow.isDestroyed()) {           
        mainWindow.setProgressBar(-1);      
       }				
       //下载被取消或中断了       
       if (state === 'interrupted') {           
         dialog.showErrorBox('下载失败', `文件 ${item.getFilename()} 因为某些原因被中断下载`);       
        }				
        //下载完成，让 dock 上的下载目录Q弹一下下       
        if (state === 'completed') {  
          console.log('success') 
          dialog.showMessageBox(null,{
            type:'info',
            message:"下载成功，文件 " + `${filePath}`
            });        
          // app.dock.downloadFinished(filePath);       
        }   
      });
    });

}

app.on('ready', function() {
  console.log("ready......");
  createWindow();
});

// Quit when all windows are closed.
app.on('window-all-closed', function () {
  // On OS X it is common for applications and their menu bar
  // to stay active until the user quits explicitly with Cmd + Q
  if (process.platform !== 'darwin') {
    app.quit();
  }
})
